// 手写 节流 函数 throttle 优先级 1

// 函数节流是指规定一个单位时间，
// 在这个单位时间内，
// 只能有一次触发事件的回调函数执行，
// 如果在同一个单位时间内某事件被触发多次，
// 只有一次能生效。
// 节流可以使用在 scroll 函数的事件监听上，
// 通过事件节流来降低事件调用的频率。

//https://juejin.cn/post/7016502001911463950#heading-4

function throttle(fun, time) {
    let t1 = 0; // 初始时间
    return function () {
        let t2 = new Date() // 当前时间
        if (t2 - t1 > time) {
            fun.apply(this, arguments) // 指定this,接受参数
            t1 = t2; 
        }
    }
}